package com.umariana.ClinicaVeterinaria.Persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.umariana.ClinicaVeterinaria.mundo.Propietario;

public class PropietarioDao extends Database
{

	/**
	 * contructor de la clase PropietarioDao
	 */
	public PropietarioDao() 
	{
		super();


	}
	
	/**
	 * agrega un propietario que ingresa como parametro a la base de datos
	 * @param p propietario que se desea agregar
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public void insertPropietario(Propietario p) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		Propietario miPropietario = p;
		conectar();
		Connection miConexion = getConexion();
		PreparedStatement comando = miConexion.prepareStatement("call AgregarPropietario(?,?,?,?,?)");
		comando.setInt(1,Integer.parseInt(miPropietario.getIdentificacion()));
		comando.setString(2,miPropietario.getNombres());
		comando.setString(3, miPropietario.getApellidos());
		comando.setString(4, miPropietario.getDireccion());
		comando.setString(5, miPropietario.getTelefono());
		comando.executeUpdate();
		comando.close();
		desconectar();

	}

	/**
	 * modifica un propietario que ingresa como parametro a la base de datos
	 * @param p propietario que se desea agregar
	 */
	public void updatePropietario(Propietario p)
	{
		
	}
	
	/**
	 * elimina un propietario que ingresa como parametro a la base de datos
	 * @param p propietario que se desea agregar
	 */
	public void deletePropietario(Propietario p)
	{
		
	}
	
	/**
	 * retorna el propietario a buscar
	 * @param p propietario a buscar
	 * @return la lista con el propietario
	 */
	public ArrayList<Propietario> selectrPropietario(int pCedula)
	{
		return null;
	}
	
	/**
	 * retorn todos los propietarios
	 * @return lista de propietarios
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public ArrayList<Propietario> selectAllPropietarios() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		ArrayList<Propietario> lista = new ArrayList<Propietario>();
		conectar();
		Connection miConexion = getConexion();
		PreparedStatement comando = miConexion.prepareStatement("call darPropietarios");
		ResultSet rs = comando.executeQuery();
		
		while(rs.next())
		{
			Propietario miPropietario = new Propietario(rs.getInt(1)+"", rs.getString(2),  rs.getString(3),  rs.getString(4),  rs.getString(5));
			lista.add(miPropietario);
		}
		
		rs.close();
		comando.close();
		desconectar();
		
		return lista;
	}

	
	
}
